import java.util.ArrayList;
import java.util.Iterator;
enum tipo{DESCONOCIDO,ENTERO,BOOL,STRING,FUNCION,VECTOR};
enum tipoParametro{NULL,ENTERO,BOOL,VECTOR,STRING};	// para funciones
enum tipoDevuelto{NULL,ENTERO,BOOL,VECTOR,STRING};	// para funciones



public class tablaSimbolos {

	static ArrayList<filaTS> tabla;
		

	public tablaSimbolos(){
		
		this.tabla = new ArrayList<filaTS>();
		
	}
	
	
	
	
	public void anadirTS(String lexema, int linea, tipo tipo, 
			int numeroParametros, tipoParametro tipoParametro, tipoDevuelto tipoDevuelto){
		
		//if (estaTS(lexema)){
		
			filaTS fila = new filaTS(lexema, linea, tipo, numeroParametros, tipoParametro, tipoDevuelto);

			tabla.add(fila);
		
		//}
		
		
	}
	
	
	public static void imprimirTabla (){
		
		Iterator<filaTS> iterador = tabla.iterator();
		while(iterador.hasNext()){
			
			
			filaTS filaActual = iterador.next();
			
		//	System.out.format("%35s%15s%30s%15s%30s%30s", filaActual.lexema, "Linea: " + filaActual.linea , "Tipo: " + filaActual.tipo, "NoParametros: " + filaActual.numeroParametros,
		//			"Tipo Parametros: " + filaActual.tipoParametro, "Tipo Devuelto: " + filaActual.tipoDevuelto);
			
			System.out.println(filaActual.lexema + "\t\tLinea: " + filaActual.linea + "\tTipo: " + filaActual.tipo + "\tNoParametros: " + 
			filaActual.numeroParametros + "\tTipo de parametros: " + filaActual.tipoParametro + "\tTipo valor devuelto: " + filaActual.tipoDevuelto);

		}
	}

	
	
	
}
